/*
 * @Description: 
 * @Author: 张文韬
 * @Date: 2022-6-15 14:09:33
 * @LastEditTime: 2024-07-14 17:11:11
 * @LastEditors: 张文韬
 * @Reference: 表单查询页面必需的方法
 */
export default {
  data() {
    return {
      // 初始化查询条件
      searchInitData: {},
      // 当前查询条件
      searchFormData: {},
      // 搜索框标题，特殊情况可在页面内单独配置
      searchLabelWidth: '0px',
      // 弹出框标题宽度，特殊情况可在页面内单独配置
      editFormLabelWidth: '100px',
      // 控制区高度
      controlHeight: 0,
      // // 分页数据
      pageData: {
        pageShow: true,
        current: 1,
        size: this.getLocalPageSize(),
        total: 100
      },
      sortInfo: {},
      // 加载状态
      loading: false,
    }
  },
  created() {},
  methods: {
    init() {
      this.loadSearchParam()
      this.getTableData();
    },
    /**
     * @functionName setLocalSearchParams
     * @description 获取表单数据，需在页面内重写覆盖
     * @author 张文韬
     */
    getTableData() {},
    /**
     * @functionName changePageSize
     * @param {Number} size 分页条数
     * @description 修改分页条数
     * @author 张文韬
     */
     changePageSize(size) {
      this.pageData.size = size;
      this.setLocalPageSize(size)
      this.getTableData();
    },
    /**
     * @functionName changePageCurrent
     * @param {Number} current 当前分页
     * @description 修改当前分页
     * @author 张文韬
     */
    changePageCurrent(current) {
      this.pageData.current = current;
      this.getTableData();
    },
    /**
     * @functionName searchControlHandle
     * @param {Object} data 查询参数
     * @description 查询
     * @author 张文韬
     */
    searchControlHandle(data) {
      this.searchFormData = data;
      this.refreshPageCurrent();
    },
    /**
     * @functionName refreshControlHandle
     * @param {Object} data 重置后的数据
     * @description 重置查询条件
     * @author 张文韬
     */
    refreshControlHandle(data) {
      this.searchInitData = {}
      this.searchFormData = data;
    },
    /**
     * @functionName changeControlHeight
     * @param {String} height 控制区占用高度
     * @description 控制区高度变化
     * @author 张文韬
     */
    changeControlHeight(height) {
      setTimeout(() => {
        this.controlHeight = height;
      });
    },
    /**
     * @functionName refreshPageCurrent
     * @description 重置当前分页
     * @author 张文韬
     */
    refreshPageCurrent() {
      this.pageData.current = 1;
      this.getTableData();
    },
    /**
     * @functionName loadSearchParam
     * @description 获取进入详情前的查询项
     * @author 张文韬
     */
     loadSearchParam() {
      let localParams = sessionStorage.getItem(this.$options.name)
      if (localParams) {
        const temp = { ...JSON.parse(localParams) }
        this.searchInitData = temp
        this.searchFormData = temp
        this.pageData.current = temp.current
        this.pageData.size = temp.size
        sessionStorage.removeItem(this.$options.name)
      }
    },
    /**
     * @functionName setLocalSearchParams
     * @description 进入详情前的保存当前搜索区域查询项
     * @author 张文韬
     */
    setLocalSearchParams() {
      sessionStorage.setItem(this.$options.name, JSON.stringify({ ...this.searchFormData, ...this.pageData }))
    },
    /**
     * @description: 设置当前页大小
     * @return {*}
     */    
    getLocalPageSize() {
      let configs = localStorage.getItem('localConfigs')
      if (configs) return JSON.parse(configs).pageSize
      return 10
    },
    setLocalPageSize(pageSize) {
      let configs = localStorage.getItem('localConfigs')
      let temp = null
      if (configs) {
        temp = JSON.parse(configs)
      }
      else temp = {}
      temp.pageSize = pageSize
      localStorage.setItem('localConfigs', JSON.stringify(temp))
    }
  }
}
